package com.telecom.cms.service;

import java.util.List;

import com.telecom.cms.dao.IdaDAO;
import com.telecom.cms.dto.IdaTemplate;
import com.telecom.cms.dto.IdaTemplateAtomParam;
import com.telecom.cms.dto.IdaTemplateAtomResult;
import com.telecom.cms.dto.IdaTemplateAtomSql;
import com.telecom.cms.dto.IdaTemplateInstance;
import com.telecom.cms.dto.SEG_BIZ_ATOM_DEFDTO;

public class IdaMgr 
{
	public IdaTemplate findTemplate(int templateId){
		return (new IdaDAO()).findTemplate(templateId);
	}
	
	public List findAllTemplate(){
		List result=(new IdaDAO()).findAllTemplate();
		return result;
	}
	
	public int insertTemplate(IdaTemplate tmpt){
		if (tmpt.getTemplateName().trim().equals(""))
			return 0;
		return (new IdaDAO()).insertTemplate(tmpt);
	}
	
	public void updateTemplate(IdaTemplate tmpt){
		(new IdaDAO()).updateTemplate(tmpt);
	}
	
	public void deleteTemplate(IdaTemplate tmpt){
		(new IdaDAO()).deleteTemplate(tmpt);
	}
	
	public void insertTemplateAtomParam(IdaTemplateAtomParam atom){
		(new IdaDAO()).insertTemplateAtomParam(atom);
	}
	
	public void insertTemplateAtomResult(IdaTemplateAtomResult atom){
		(new IdaDAO()).insertTemplateAtomResult(atom);
	}
	
	public void insertTemplateAtomSql(IdaTemplateAtomSql atom){
		(new IdaDAO()).insertTemplateAtomSql(atom);
	}
	
	public IdaTemplateAtomParam findTemplateAtomParamInit(int atomId){
		IdaTemplateAtomParam atom = new IdaTemplateAtomParam();
		List atomList = new IdaDAO().findAllAtom();
		for (int i = 0; i < atomList.size(); i++){
			SEG_BIZ_ATOM_DEFDTO tempAtom = (SEG_BIZ_ATOM_DEFDTO)atomList.get(i);
			if (atomId == tempAtom.getBIZ_ATOM_ID()){
				atom.setBizAtomId(tempAtom.getBIZ_ATOM_ID());
				atom.setBizAtomName(tempAtom.getBIZ_ATOM_NAME());
				atom.setShowTypeId(String.valueOf(tempAtom.getSHOW_TYPE_ID()));
				atom.setValueTypeId(String.valueOf(tempAtom.getBAS_TABLE_COL_TYPE()));
				if (atom.getValueTypeId().indexOf("(") != -1)
					atom.setValueTypeId(atom.getValueTypeId().substring(0,atom.getValueTypeId().indexOf("(")));
				break;
			}
		}
		return atom;
	}
	
	public IdaTemplateAtomResult findTemplateAtomResultInit(int atomId){
		IdaTemplateAtomResult atom = new IdaTemplateAtomResult();
		List atomList = new IdaDAO().findAllAtom();
		for (int i = 0; i < atomList.size(); i++){
			SEG_BIZ_ATOM_DEFDTO tempAtom = (SEG_BIZ_ATOM_DEFDTO)atomList.get(i);
			if (atomId == tempAtom.getBIZ_ATOM_ID()){
				atom.setBizAtomId(tempAtom.getBIZ_ATOM_ID());
				atom.setBizAtomName(tempAtom.getBIZ_ATOM_NAME());
				if (tempAtom.getVALUE_TYPE_ID() == 1 || tempAtom.getVALUE_TYPE_ID() == 100)
					atom.setIsDimension("20");
				else
					atom.setIsDimension("10");
				break;
			}
		}
		return atom;
	}
	
	public IdaTemplateAtomSql findTemplateAtomSqlInit(String colName){
		IdaTemplateAtomSql atom = new IdaTemplateAtomSql();
		List atomList = new IdaDAO().findAllAtom();
		for (int i = 0; i < atomList.size(); i++){
			SEG_BIZ_ATOM_DEFDTO tempAtom = (SEG_BIZ_ATOM_DEFDTO)atomList.get(i);
			if (tempAtom.getBAS_TABLE_COL_NAME().trim().equalsIgnoreCase(colName)){
				atom.setParamNameCn(tempAtom.getBIZ_ATOM_NAME());
				atom.setIsMatchAtom("10");
				atom.setDmnTableName(tempAtom.getCDE_SRC_TABLE_NAME());
				atom.setDmnColumnName2(tempAtom.getSRC_TABLE_COL_NAME());
				atom.setBizAtomId(tempAtom.getBIZ_ATOM_ID());
				atom.setBizAtomName(tempAtom.getBIZ_ATOM_NAME());
				atom.setShowTypeId(String.valueOf(tempAtom.getSHOW_TYPE_ID()));
				atom.setValueTypeId(String.valueOf(tempAtom.getBAS_TABLE_COL_TYPE()));
				if (atom.getValueTypeId().indexOf("(") != -1)
					atom.setValueTypeId(atom.getValueTypeId().substring(0,atom.getValueTypeId().indexOf("(")));
				break;
			}
		}
		return atom;
	}
	
	public IdaTemplateInstance findInstance(int instanceId){
		return (new IdaDAO()).findInstance(instanceId);
	}
	
	public List findAllInstance(){
		List result=(new IdaDAO()).findAllInstance();
		return result;
	}
}
